دالة SORTBY في Excel
دوال البحث والمراجع / دوال المصفوفة الديناميكية
الغرض من الدالة
دالة SORTBY تمنحك مرونة فائقة في الفرز. تسمح لك بفرز نطاق بيانات معين، ولكن ليس بالضرورة بناءً على قيمه الخاصة، بل بناءً على قيم موجودة في نطاق أو نطاقات أخرى. هذا يعني أنه يمكنك ترتيب قائمة بناءً على معايير موجودة في قائمة منفصلة تماماً، مما يحافظ على سلامة البيانات الأصلية.
هذه الدالة تؤدي نفس النتائج التي يمكنك تطبيقها من خلال خيار فرز وتصفية الموجود في القائمة الرئيسية في Excel, والذي فيه 'فرز مخصص' واختيار فرز حسب الأعمدة ولكن مع فارق بسيط يعطيها القوة اكثر, وهو إمكانية الفرز خارج النطاق المحدد. حيث يمكن فرز مجال بناء على مجال آخر منفصل.
صيغة الدالة (Syntax)
- array: النطاق أو المصفوفة التي ترغب في فرزها. هذه هي البيانات التي سيتم تغيير ترتيبها.
- by_array1: النطاق أو المصفوفة التي تحتوي على القيم التي تريد الفرز بناءً عليها. هذه القيم هي التي ستحدد الترتيب.
- [sort_order1]: (اختياري) رقم يحدد ترتيب الفرز لـ
by_array1:1لفرز تصاعدي (افتراضي)،-1لفرز تنازلي. - [by_array2, sort_order2], ...: (اختياري) يمكنك إضافة أزواج إضافية من النطاقات/المصفوفات وترتيب الفرز لتطبيق فرز ثانوي، ثم فرز ثالث، وهكذا.
أمثلة عملية
المثال 1: فرز أسماء الطلاب حسب درجاتهم
لدينا قائمة بأسماء الطلاب في العمود A وقائمة منفصلة بدرجاتهم في العمود B. نريد فرز أسماء الطلاب بحيث تظهر الأسماء بترتيب تنازلي لدرجاتهم (من الأعلى للأدنى).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | الاسم | العلامة | فرز تنازلي | |
| 2 | علي | 85 | فاطمة | |
| 3 | فاطمة | 92 | ||
| 4 | خالد | 78 |
الصيغة المستخدمة:
=SORTBY(A2:A4, B2:B4, -1)
توضيح:
الدالة قامت بفرز الأسماء في النطاق A1:A3 بناءً على الدرجات في النطاق B1:B3 بترتيب تنازلي.
المثال 2: فرز حسب أكثر من عمود
لدينا قائمة بأسماء الموظفين في شركة لإنتاج نكاشات الأسنان الاصلية. تريد الشركة حساب أولوية توصيل العاملين صباحاً بناء على (العمر) الذي له الأولوية القصوى (الأكبر سناً له الأولوية) ثم بناء على بعدهم عن مقر الشركة (الأبعد له الأولوية).
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | الاسم | العمر | المسافة | الأولوية | العمر | المسافة | |
| 2 | Ahmed | 33 | 3 | Sami | |||
| 3 | Sami | 39 | 5 | ||||
| 4 | Rasha | 23 | 10 | ||||
| 5 | Sara | 23 | 20 |
الصيغة المستخدمة:
=SORTBY(A2:C5, B2:B5, -1, C2:C5, -1)
توضيح:
مجال الترتيب array هو A2:C5 (ويمكننا وضع A2:C2 إذا كان يهمنا النتيجة فقط بدون توضيح أسباب الفرز).
مجال التريب الأول هو العمر وبالتالي ضمن النطاق B2:B5. والترتيب تنازلي, حيث الأكبر سنا له الأولوية لذا يكون sort_order1 = -1
مجال التريب الثاني هو البعد, وبالتالي ضمن النطاق C2:C5. والترتيب تنازلي أيضاً, لأن الأبعد له الأولوية لذا يكون sort_order2 = -1
الآن نلاحظ أن سامي له الأولوية لأنه الأكبر سناً 39. ثم أحمد 33 ثم رشا وسارة 23 لا فرق. بين عمريهن.
وفي الترتيب الثاني حجز سامي وأحمد الأولوية بسبب العمر رغم قرب المسافة. وأخذت رشا الأولوية على سارة لأنها الأبعد على مقر الشركة 20 كم.